package com.zmn.oms.persistence.interfaces.warranty;

import com.zmn.oms.model.entity.warranty.OrderWarranty;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 类描述：保修卡
 * @author heciqi
 * @date 2018/11/29 17:09
 */
public interface OrderWarrantyDao {

	/**
	 * 根据订单id 集合查询订单保修卡
	 *
	 * @param orderIdList 订单id集合
	 * @return 订单保修卡
	 */
	List<OrderWarranty> listOrderWarrantyCodeByOrderIdList(@Param("orderIdList") List<Long> orderIdList);

	/**
	 * 根据订单结合查询保修卡集合 用于用户端显示
	 * @param orderIdList
	 * @return
	 */
	List<OrderWarranty> listOrderWarrantyByOrderIdList(@Param("orderIdList") List<Long> orderIdList);

	/**
	 * 查询用户的保修卡列表
	 * @param userId
	 * @return
	 */
	List<OrderWarranty> listByUserId(Long userId);

	/**
	 * 查询单个保修卡
	 * @param warrId
	 * @return
	 */
	OrderWarranty selectByPrimaryKey(Long warrId);

	/**
	 * 插入保修卡
	 * @param record
	 * @return
	 */
	int insert(OrderWarranty record);

	/**
	 * 根据主键修和类型修改保修卡状态
	 *
	 * @param record
	 * @return
	 */
	int updateWarrantyStatus(OrderWarranty record);

	/**
	 * 根据主键修改保修卡
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(OrderWarranty record);

	/**
	 * 修改用户id
	 * @param orderIdSet
	 * @param newUserId
	 */
	void updateUserIdByOrderIds(@Param("orderIdSet") Set<Long> orderIdSet, @Param("newUserId") Long newUserId);

	/**
	 * 删除保修卡
	 * @param warrId
	 * @return
	 */
	int deleteByPrimaryKey(Long warrId);
}